package com.easyctba.core.domain.vo;

import com.easyctba.common.translation.annotation.Translation;
import com.easyctba.common.translation.constant.TransConstant;
import com.easyctba.core.domain.CtbaSt;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.easyctba.common.excel.annotation.ExcelDictFormat;
import com.easyctba.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;


/**
 * st分析视图对象 ctba_st
 *
 * @author Huang
 * @date 2024-03-01
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = CtbaSt.class)
public class CtbaStVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ExcelProperty(value = "主键")
    private Long id;

    /**
     * 项目id
     */
    @ExcelProperty(value = "项目id")
    private Long projectId;

    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    private Date createTime;

    /**
     * 创建人
     */
    @ExcelProperty(value = "创建人")
    private Long createBy;

    /**
     * 更新时间
     */
    @ExcelProperty(value = "更新时间")
    private Date updateTime;

    /**
     * 更新人
     */
    @ExcelProperty(value = "更新人")
    private Long updateBy;

    /**
     * 采样间隔(s)
     */
    @ExcelProperty(value = "采样间隔(s)")
    private Long interval;

    /**
     * 视频地址
     */
    @ExcelProperty(value = "视频地址")
    private String videoUrl;

    /**
     * 视频时长(s)
     */
    @ExcelProperty(value = "视频时长(s)")
    private Long duration;

    /**
     * st分析状态
     */
    @ExcelProperty(value = "st分析状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "ctba_st_status")
    private String stStatus;

    /**
     * 视频封面
     */
    @ExcelProperty(value = "视频封面")
    @Translation(type = TransConstant.OSS_ID_TO_URL)
    private Long cover;

    /**
     * 编码开始时间
     */
    @ExcelProperty(value = "编码开始时间")
    private String startTime;

    /**
     * 编码结束时间
     */
    @ExcelProperty(value = "编码结束时间")
    private String endTime;

    /**
     * 编码表
     */
    @ExcelProperty(value = "编码表")
    @Translation(type = TransConstant.OSS_ID_TO_URL)
    private Long codeTable;

    /**
     * rt值
     */
    @ExcelProperty(value = "rt值")
    private Double rt;

    /**
     * ch值
     */
    @ExcelProperty(value = "ch值")
    private Double ch;

    /**
     * 教学模式
     */
    @ExcelProperty(value = "教学模式")
    private String mode;

    /**
     * 分析耗时(ms)
     */
    @ExcelProperty(value = "分析耗时(ms)")
    private Long time;
}
